Installation d'un écran tactile 7" sur Raspberry PI


Une solution peu chère pour avoir un écran tactile de 7 pouces sur un Raspberry PI consiste à acquérir un écran chinois « 7.0 inch 800x480 Hdmi touch with USB touch Display Support Raspberry pi Banana Pi Banana Pro Beaglebone bone » du constructeur ELEDUINO pour une cinquantaine d'euros environ.

écran

Installation :

Je suis parti d'une image d'OS, Raspbian qui est un système d’exploitation GNU/Linux, dérivé de Debian, et spécialement compilé et optimisé pour Raspberry Pi.

Vous pouvez télécharger l'image de Raspbian dans sa dernière version (Raspbian Jessie).

après avoir compressé l'archive, vous obtiendrez l'image sous la forme :

2015-09-24-raspbian-jessie.img

Arrêter la carte Raspberry, et monter la carte SD dans un ordinateur (sous linux bien entendu, je ne me souviens plus à quoi ressemble Windows) équipé d'un lecteur. Il est important de bien repérer le périphérique associé à la carte SD avant toute manipulation. Une erreur à ce niveau là peut vous effacer le disque dur de votre ordinateur.

Pour moi, c'était : /dev/sdb

copier l'image sur la carte :

sudo dd bs=4M if=2015-09-24-raspbian-jessie.img of=/dev/sdb

Pour vérifier l'avancement, sur un autre terminal tapez, autant de fois que vous voulez vérifier :

pkill -USR1 -n -x dd

Le terminal sur lequel vous avez lancé la commande dd affichera alors l'avancement de la copie.

Quand le processus est terminé, vous devez avoir deux partitions sur la carte SD : - une nommée boot, formatée en fat16 d'environ une cinquantaine de Mo - une formatée en ext4 occupant l'espace restant des 4 Go (si votre carte est supérieure, ex : 8Go, le reste n'est pas formaté, il faudra utiliser la commande raspi-config pour l'intégrer l'espace de stockage restant).

Dans la première partition (boot), vous devez éditer le fichier config.txt comme suit :

# For more options and information see 
# http://www.raspberrypi.org/documentation/configuration/config-txt.md 
# Some settings may impact device functionality. See link above for details 

# uncomment if you get no picture on HDMI for a default "safe" mode 
#hdmi_safe=1 

# uncomment this if your display has a black border of unused pixels visible 
# and your display can output without overscan 
#disable_overscan=1 

# uncomment the following to adjust overscan. Use positive numbers if console 
# goes off screen, and negative if there is too much border 
#overscan_left=16 
#overscan_right=16 
#overscan_top=16 
#overscan_bottom=16 

# uncomment to force a console size. By default it will be display's size minus 
# overscan. 
#framebuffer_width=1280 
#framebuffer_height=720 

# uncomment if hdmi display is not detected and composite is being output 
hdmi_force_hotplug=1 

# uncomment to force a specific HDMI mode (this will force VGA) 
hdmi_group=2 
hdmi_mode=87 
hdmi_cvt 800 480 60 6 0 0 0 

# uncomment to force a HDMI mode rather than DVI. This can make audio work in 
# DMT (computer monitor) modes 
#hdmi_drive=2 

# uncomment to increase signal to HDMI, if you have interference, blanking, or 
# no display 
#config_hdmi_boost=4 

# uncomment for composite PAL 
#sdtv_mode=2 

#uncomment to overclock the arm. 700 MHz is the default. 
#arm_freq=800 

# Uncomment some or all of these to enable the optional hardware interfaces 
#dtparam=i2c_arm=on 
#dtparam=i2s=on 
#dtparam=spi=on 

# Uncomment this to enable the lirc-rpi module 
#dtoverlay=lirc-rpi 

# Additional overlays and parameters are documented /boot/overlays/README 
max_usb_current=1 

Vous remarquerez la dernière ligne à rajouter pour permettre au port usb d'alimenter l'écran. (de ce que j'ai pu lire sur le net, la valeur 1 donnerait 1,2 A maxi, à vérifier !).

Vous pouvez maintenant remettre la carte SD puis connecter l'écran au moyen des deux câbles fournis : HDMI et USB sur le connecteur noté « touch and power ».

connexion

A ce stade, je vous conseille de garder un clavier et une souris connectés.

Installation du touch pad :

L'écran tactile Eleduino est semble t'il « très compatible » avec l'écran 7inch HDMI LCD (B), je me suis donc inspiré de la procédure d'installation du site de waveshare

comme c'est très bien expliqué sur le site précédent, il faut dans un premier temps récupérer le driver sous la forme d'une archive constituée comme suit:

archive

Sur le site de waveshare, ils proposent de lancer un script d'installation sur le Raspberry. Pour ma part, n'ayant pas extrait l'archive sur le Raspberry, j'ai préféré intervenir sur une autre machine au niveau de la carte SD en effectuant à la main les mêmes opérations que le script d'installation original :

  • copie des deux fichiers kernel.img et kerner7.img sur la racine de partition de boot (après avoir sauvegardé les anciens)
  • suppression des répertoires 4.1.7+ et 4.1.7-v7+ du répertoire /lib/modules de la deuxième partition (après les avoir sauvegardés également)
  • copie du répertoire 3.18.6+ dans le répertoire ci-dessus.

Bien évidemment cela revient à faire un "downgrade" de la version du noyau (ce n'est pas terrible, mais pour l'instant je n'ai pas d'autre solution!)

Sur l'archive, vous trouverez également le paquet xinput-calibrator_0.7.5-1_armhf.deb, profitez en pour le copier dans le file system de la carte SD, vous pourrez l'installer plus tard (moi le l'ai mis dans /home/pi pour être sûr de le retrouver).

Vous pouvez maintenant remettre la carte SD sur le Raspberry et rebooter.

C'est le moment d'installer le paquet :

dpkg -i -B xinput-calibrator_0.7.5-1_armhf.deb

Voilà, si tout s'est bien passé, vous devriez avoir le touch screen qui émule la souris. Vous pouvez également le calibrer en allant dans le menu Préférence puis Calibrate Touch Screen.

Clavier virtuel :

Pour l'installation du clavier virtuel, j'ai tout simplement suivi le tutoriel, après avoir installé le paquet dh-autoreconf :

sudo apt-get install dh-autoreconf

Conclusion :

Cette procédure d'installation n'est pas totalement satisfaisante car elle utilise des modules binaires du noyau et des drivers. Dans ces conditions, toute mise à jour est à proscrire, ce qui est très ennuyeux. Je continue à travailler pour régler ce problème....